รากฐานของระบบยืดหยุ่นอยู่ที่การกำหนดสัญญาหรืออินเทอร์เฟซภายในที่แน่นอน สัญญา หรืออินเทอร์เฟซที่วัตถุต้องปฏิบัติตาม ในบริบทนี้ เราจะกำหนด อินเทอร์เฟซตาราง ที่วัตถุเซลล์ทุกตัวรับรองว่ามีเมธอดเฉพาะสามแบบที่จำเป็น: minWidth(), minHeight()และ draw(width, height).
1. สัญญาอินเทอร์เฟซ
โดยการมาตรฐานเมธอดเหล่านี้ ตรรกะการจัดวางสามารถคำนวณขนาดแถวและคอลัมน์ทั่วไปได้ โดยไม่ต้องรู้ประเภทข้อมูลภายในของเซลล์แต่ละตัว นี่เป็นตัวอย่างคลาสสิกของ พอลิโมฟิซึมที่อิงจากอินเทอร์เฟซ.
2. การใช้งานคลาส TextCell
เมธอด TextCell คอนสตรัคเตอร์จะเตรียมข้อมูลดิบโดยการแยกสตริงออกเป็นอาร์เรย์ตามบรรทัด ซึ่งจะเปลี่ยนความซับซ้อนจากขั้นตอนการวาดภาพมาเป็นขั้นตอนการสร้างวัตถุ
3. การวาดที่แน่นอน
เมธอด draw(width, height) เมธอดนี้รับประกันว่าผลลัพธ์ของทุกเซลล์จะถูกเติมเต็มอย่างสมบูรณ์โดยใช้ฟังก์ชันช่วยเสริม repeat() ช่วยให้การจัดเรียงแนวตั้งและแนวนอนคงที่ ไม่ว่าความยาวของเนื้อหาจะเป็นเท่าใด
$$\text{การเติม} = \text{กว้าง} - \text{ความยาวบรรทัด}$$